/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;

import java.util.List;
import modelos.daos.CheckInHabitacionDAO;
import modelos.daos.FacturaHabitacionDAO;
import modelos.pojos.FacturaHabitacion;
import modelos.pojos.Reserva;
import modelos.pojos.ReservaHabitacion;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import modelos.daos.CheckInSalaDAO;
import modelos.daos.FacturaSalaDAO;
import modelos.pojos.FacturaSalaEvento;
import modelos.pojos.ReservaSala;

/**
 *
 * @author ricardo
 */
public class FacturarCont {

    static int valor;

    public static int determinarDuracionReserva(Date fechaEntrada) {
        int dias = 0;
        GregorianCalendar fechaIngreso = new GregorianCalendar();
        fechaIngreso.setTime(fechaEntrada);
        GregorianCalendar fechaActual = new GregorianCalendar();
        fechaActual.setTime(new Date());
        dias = fechaActual.get(Calendar.DAY_OF_YEAR) - fechaIngreso.get(Calendar.DAY_OF_YEAR);
        return dias;
    }
    
    public static void abrirFacturaReservaHabitacion(String codigoReserva, String numeroHabitacion) {
        ReservaHabitacion reservaFacturar = ConsultarReservaCont.consultarReservaHabitacion(codigoReserva, numeroHabitacion);
        try {
            FacturaHabitacionDAO.crear(new FacturaHabitacion(reservaFacturar));
        } catch (Exception ex) {
        }
    }

    public static void abrirFacturaReservaSala(String codigoReserva, String numeroSala) {
        ReservaSala reservaFacturar = ConsultarReservaCont.consultarReservaSala(codigoReserva, numeroSala);
        try {
            FacturaSalaDAO.crear(new FacturaSalaEvento(reservaFacturar));
        } catch (Exception ex) {
        }
    }

    public static void cerrarFacturaReservaHabitacion(String codigoReserva, String numeroHabitacion, double valorFinal) {
        ReservaHabitacion reservaFacturar = ConsultarReservaCont.consultarReservaHabitacion(codigoReserva, numeroHabitacion);
        FacturaHabitacion facturaHabitacion = new FacturaHabitacion(reservaFacturar, new Date(), valorFinal);
        facturaHabitacion.setEstado('f');

        try {
            FacturaHabitacionDAO.cerrar(facturaHabitacion);
        } catch (Exception ex) {
        }
    }

    public static void cerrarFacturaReservaSala(String codigoReserva, String numeroSala, double valorFinal) {
        ReservaSala reservaFacturar = ConsultarReservaCont.consultarReservaSala(codigoReserva, numeroSala);
        FacturaSalaEvento facturaSalaEvento = new FacturaSalaEvento(reservaFacturar, new Date(), valorFinal);
        facturaSalaEvento.setEstado('f');
        try {
            FacturaSalaDAO.cerrar(facturaSalaEvento);
        } catch (Exception ex) {
        }
    }

    public static List<modelos.pojos.CheckInHabitacion> listarCheckInHabitacionFacturables(String codigoReserva) {
        Reserva reservaFacturar = ConsultarReservaCont.consultarReserva(codigoReserva);
        List<modelos.pojos.CheckInHabitacion> listaFacturables = null;
        try {
            listaFacturables = CheckInHabitacionDAO.consultarFacturables(reservaFacturar);
        } catch (Exception ex) {
        }
        return listaFacturables;
    }
    
    public static List<modelos.pojos.CheckInSala> listarCheckInSalaFacturables(String codigoReserva) {
        Reserva reservaFacturar = ConsultarReservaCont.consultarReserva(codigoReserva);
        List<modelos.pojos.CheckInSala> listaFacturables = null;
        try {
            listaFacturables = CheckInSalaDAO.consultarFacturables(reservaFacturar);
        } catch (Exception ex) {
        }
        return listaFacturables;
    }
}
